package JavaEE_notes.common_API.Network;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * UDP通信练习的服务器
 * @author TaiZai
 * @data 2024/9/26 9:52
 */
public class UDP_Server {
    public static void main(String[] args) throws IOException {
        System.out.println("服务器启动");
        // 1、创建一个服务器对象
        DatagramSocket socket = new DatagramSocket(7878);

        // 2、创建一个数据包对象，用于接收数据的
        byte[] buffer = new byte[1024 * 64]; // 64KB
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

        // 3、开始正式使用数据包来接收客户端发送的数据
        // socket.receive(packet);

        // 4、从字节数组中，把接收到的数据直接打印 单词获取
        // int len = packet.getLength();
        // String info = new String(buffer, 0, len);
        // System.out.println(info);

        // 多次获取
        while (true) {
            socket.receive(packet);
            int len = packet.getLength();

            System.out.println(new String(buffer, 0, len));

            System.out.println(packet.getAddress().getHostAddress()); // 获取发送方的IP地址
            System.out.println(packet.getPort()); // 获取发送方的端口号
        }
    }
}
